import abc


class ITask(abc.ABC):
    @property
    @abc.abstractmethod
    def filename(self) -> str:
        pass

    @abc.abstractmethod
    def build_column_str(self, column_data: [str], index: int, total_count: int) -> str:
        """
        Build line str.
        :param column_data: 0: column name, 1: column type, 2: comment
        :param index: current index
        :param total_count: total column count
        :return: build str to write to file
        """
        pass
